// package com.xuyuan.jdk;
//
// import com.sun.management.HotSpotDiagnosticMXBean;
// import org.junit.jupiter.api.Test;
// import sun.management.ManagementFactoryHelper;
//
// import javax.management.MBeanServer;
// import javax.management.ObjectName;
// import java.lang.management.ManagementFactory;
// import java.util.Map;
// import java.util.Properties;
//
// public class JdkProperties {
//
//     @Test
//     public void test() throws Exception {
//         // JVM属性
//         Properties properties = System.getProperties();
//         System.out.println(properties);
//         // 操作系统的环境变量
//         Map<String, String> env = System.getenv();
//     }
//
//     @Test
//     public void test2() throws Exception {
//         // 1 动态调整JVM属性
//         System.setProperty("java.vm.name", "value1");
//         System.out.println(System.getProperty("java.vm.name"));
//
//         // 2 TODO 不对 result -> VM option "java.vm.name" does not exist
//         HotSpotDiagnosticMXBean diagnosticMXBean = ManagementFactoryHelper.getDiagnosticMXBean();
//         diagnosticMXBean.setVMOption("java.vm.name", "value2");
//         System.out.println(System.getProperty("java.vm.name"));
//
//         // 3  JMX（Java Management Extensions）通过MBeanServer
//         // TODO 不对
//         try {
//             // 获取 MBeanServer
//             MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
//             ObjectName objectName = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
//             // 动态设置 MBean 属性
//             mBeanServer.setAttribute(objectName, new javax.management.Attribute("java.vm.name", "newValue3"));
//             // 获取更新后的 MBean 属性
//             String value = (String) mBeanServer.getAttribute(objectName, "java.vm.name");
//             System.out.println("更新后的属性值: " + value);
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
//
//     }
//
//     @Test
//     public void test3() throws Exception {
//         // TODO 动态调整环境变量 - 不会修改系统本身的环境变量 - 待验证
//         System.getenv().put("key", "value");
//     }
//
// }
